Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves metrics for streams.
Actual code meters only query execution in streams, not data transfer/encoding, therefore things seems to be really fast.
E.g.: the same query, using
Selector::all()
is metered at 0.005s, usingSelector::stream()
is metered at 0.000003s. Things are fast but not that fast.My PR measures also every
Stream::next()
duration and sums all together to give a more realistic value, taking the metric on Stream drop.To be honest, there is an async part of the stream that can't be measured, e.g. when
Stream::next()
is called and data is already ready, but that's one of the advantages of Streams.More, this PR removes calls to
SystemTime::now()
when not needed, removing the overhead of a system call for who doesn't uses metrics.